<template>
	<el-scrollbar class="pl-4 py-2" always>
		<custom-tree :data="data" @node-click="onRowClick"  />
	</el-scrollbar>
</template>

<script setup lang="ts">
import customTree from '/@/components/CustomTree/index.vue';
// 导入接口mesBandRelationProduce
import { getTreeList } from '/@/api/platform/mes/mesForwardTrace';

const props = defineProps({
	query: Object,
});
const data = defineModel();

const emit = defineEmits(['row-click']);

// 监听 props.query 的变化以更新树形结构
watch(
	() => props.query,
	(newQuery) => {
		console.log('Query updated:', newQuery);
		// 在这里调用方法来更新树形结构的数据
	}
);

// 在树形结构的行点击事件中调用 emit
const onRowClick = (row) => {
	emit('row-click', row);
};

// 递归函数，将 text 值赋给 label
const assignLabel = (nodes) => {
	nodes.forEach((node) => {
		node.label = node.text;
		if (node.children && node.children.length > 0) {
			assignLabel(node.children);
		}
	});
};

// 定义更新树形结构的方法
const updateTree = () => {
	// 在这里调用方法来更新树形结构的数据
	data.value.length = 0;
	getTreeList(props.query).then((res) => {
		// 将res?.data赋值给data
		data.value.push(...res?.data);
		assignLabel(data.value);
		// 遍历data
		let i = 1;
    if(data.value.length == 0){
      return;
    }
		data.value.forEach((item) => {
			item.label = i.toString().padStart(2, '0') + '.' + item.text;
			i++;
			if (!item.children) {
				item.children = [];
			}
		});
	});
};


// 使用 defineExpose 暴露方法
defineExpose({
	updateTree,
});
</script>
